Mobile devices are playing an expanded role in everyday life. This is demonstrated by a constant production of mobile applications that take advantage of the rich multi-modal sensing hardware available on today's mobile devices. For instance, today a wealth of sensors including camera, microphone, GPS, accelerometers, proximity sensors, ambient light sensors, and multi-touch panels are already standard on high and mid-tier mobile devices.
However providing a user with raw sensor readings alone are typically meaningless. Specifically, mobile applications rarely provide a user with raw sensor readings alone since such readings do not easily map to meaningful application level actions that make inferences about the surrounding environment. Rather, mobile applications often employ a sensor data post-processing phase to extract and classify useful high level inferred data, or Application Data Units (ADUs).
For example, a mobile device may execute a human activity inference application which sifts through microphone and accelerometer data to understand when an individual is in a meeting, working alone, or exercising; a transportation inference application might look at patterns in GPS and Wi-Fi signals to determine when an individual takes a car, bike or subway; an augmented reality application might process the camera feed to tag objects that the individual is viewing through the camera lens. These examples span the gamut from rich multi-sensor capture to simple sensor streams. Yet, each application involves non-trivial classification of raw sensor data into ADUs in order to make an inference about the environment.
The concept of mapping raw sensor data readings to high-level ADUs has a long history outside the mobile device space. In this space, Statistical Machine Learning has been identified as offering strong discriminative power to classify raw sensor data. Statistical Machine Learning is used to aide in assigning correct class tags to raw sensor readings via a classification pipeline. For example, activity recognition and image recognition are two applications which frequently employ machine learning.
Thus, machine learning potentially offers a solution for mobile device sensing application development. However, current machine learning techniques are not tuned to operate on the limited battery power available on mobile devices. Specifically, while existing machine learning classification algorithms directly address the problem of ADU construction from base sensor readings, their design is orientated solely towards accuracy. Unfortunately, these machine learning classification algorithms are not purpose-built for mobile settings in which cost (e.g., latency and energy) is of equal importance. Thus, existing algorithms often make resource demands that are unrealistic for mobile devices. Specifically, these algorithm implementations have led to energy expenditures and performance latencies beyond the tolerance of mobile users. The current trend of mobile devices using continuous sensing and classification will only exacerbate these issues.
One proposed solution has been to focus only on tuning a single classification pipeline parameter such as the sampling rate. While tuning this single parameter is relatively convenient and may potentially reduce cost, this single parameter is one of many that affect the classification results. Thus simply tuning a single classification parameter does not necessarily achieve the optimal accuracy/cost benefit.
As discussed above, another proposed solution of porting traditional machine learning techniques to mobile devices have required labor intensive hand-tuning by a developer of a plurality of classification pipeline parameters. This is a very labor intensive process which requires a developer with significant skill. In addition, this hand-tuning does not scale well as system constraints vary e.g., variations in bandwidth, etc.